Primary data analysis¶

Table of Contents

  • 1  Introduction
  • 2  Descriptive statistics
    • 2.1  For all rows
      • 2.1.1  Numerical data
        • 2.1.1.1  Summary statistics
        • 2.1.1.2  Distribution evaluation and density plots
      • 2.1.2  Categorical data
    • 2.2  For just exercises
      • 2.2.1  Numerical data
        • 2.2.1.1  Summary statistics
        • 2.2.1.2  Distribution evaluation and density plot
      • 2.2.2  Categorical data
    • 2.3  For USERS
      • 2.3.1  Numerical data
        • 2.3.1.1  Summary statistics
        • 2.3.1.2  Distribution evaluation and density plots
      • 2.3.2  Categorical data
    • 2.4  For Session_executions
      • 2.4.1  Numerical data
        • 2.4.1.1  Summary statistics
        • 2.4.1.2  Distribution evaluation and density plots
      • 2.4.2  Categorical data
  • 3  Sessions executed by users in time (numbers and plots)

Introduction¶

The whole dataset (df) have 1905740 observations and 82 columns. There are no repeated rows (each row have something different like different id value of exercise execution or id of implement used in an exercise). In this version of dataset, each row tells about different exercise execution (when id of exercise execution is repeated, it means that there are multiple different ids of implements given for one exercise execution).

The dataset can be subset when it comes to id_session_execution and there is only dataset with session executions (only one row for each session execution) - df_session_exe. It can be also subset by each user (there is only one row for each user) - df_users_only.

For whole dataset, there are columns:

  • id_ex_ex - ID value of exercise execution,
  • reps_executed_ex_ex - how many reps were executed in exercise execution,
  • execution_time_ex_ex - how many seconds did the exercise take,
  • order_ex_ex - order of the exercise execution in a session execution (it is rather not relevant for the analysis),
  • updated_at_ex_ex - date and time when was the exercise execution finished (it should be),
  • id_session_set_ex - id of set execution in session,
  • order_session_set_ex - order of set execution in session (rather not relevant),
  • id_exercises - id of exercise done,
  • created_at_exercises - when was the exercise created (by the authors of the app),
  • updated_at_exercises - when was the exercise last updated (by the authors of the app),
  • body_parts_focused_exercises - what body parts were focused in the exercises,
  • muscles_exercises - what muscles were focused on in the exercise,
  • joints_exercises - what joints were focused on in the exercise,
  • met_multiplier_exercises - the metabolic equivalent of task (MET) is the ratio of the metabolic rate during exercise to the metabolic rate at rest,
  • name_en_exercises - name of the exercise,
  • id_session_block_ex - id of block execution in session,
  • order_session_block_ex - order of block execution in session (rather not relevant),
  • id_session_execution - id of session execution,
  • difficulty_feedback_session_execution - difficulty feedback on executed session given by user,
  • enjoyment_feedback_session_execution - enjoyment feedback on executed session given by user,
  • reps_executed_session_execution - how many reps should be done in a session execution (calculated by the app, but the variable is rather wrong, because of errors in the data - falsely given reps number in exercise executions),
  • updated_at_session_execution - date when was session executed,
  • discarded_session_execution - True/False if session execution was discarded,
  • id_sessions - id of session (theoretical session created by authors of the app),
  • order_sessions - theoretical order of session,
  • time_duration_sessions - theoretical length of session in seconds,
  • code_name_sessions - code name of session,
  • name_en_sessions - name of session,
  • id_user_programs - id of user program,
  • created_at_user_programs - when was the program selected by user,
  • updated_at_user_programs - when was the program last time updated by user,
  • active_user_programs - is the program active (True/False value),
  • current_session_id_user_programs - current id of session in program,
  • completed_user_programs - was the program completed by user (True/False),
  • id_programs - id of program (theoretical),
  • created_at_programs - when was the program created by the authors of the app,
  • updated_at_programs - when was the program lastly updated by the authors of the app,
  • pro_programs - is the program for pro users (True/False),
  • available_programs - is the program available to use by user,
  • strength_programs, endurance_programs, technique_programs, flexibility_programs, intensity_programs - it’s an indication of the difficulty of the program to show users what they were choosing, on a scale from 1 to 5,
  • name_en_programs - name of a program,
  • description_en_programs - description of a program (rather not relevant),
  • id_users - id of user that did the exercise execution,
  • created_at_users - when was the profile of user created,
  • updated_at_users - when was the profile last time updated,
  • gender - gender of user doing exercise execution,
  • date_of_birth - date of birth of user that did the exercise execution,
  • height - height of user (in cm),
  • weight - weight of user (in kg),
  • activity_level - 0 – very active, 1 – active, 2 - sedentary,
  • goal - 0 – lose, 1 – gain,
  • body_type - 0 – thin, 1 – mid, 2 – strong,
  • body_fat - value in percent,
  • newsletter_subscription - (True/False) if user agreed on newsletter subscription,
  • notifications_setting - (True/False) if user agreed on notifications,
  • training_days_setting - number of days in a week set for trainings,
  • language - language of the app,
  • points - number of points for every user,
  • scientific_data_usage - (True/False) if user agreed on scientific data usage,
  • best_weekly_streak_users - how many weeks in a row did user complete training days,
  • id_implements - id of implement,
  • name_en_implements - name of the implement,
  • BMI - BMI value of every user,
  • BMI_category - (BMI<18.5 - underweight, 18.5 ≤ BMI <25 - normal weight, 25 ≤ BMI <30 - overweight, BMI ≥30 - Obesity),
  • total_sessions_users2 - number of sessions done by the user (calculated using number of unique values of id_session_execution for every user),
  • total_time_session_execution - total length of executing a session (in seconds), calculated by summing execution_time_ex_ex for every id_session_execution,
  • total_reps_session_execution - total number of reps in executed session, calculated by summing reps_executed_ex_ex for every id_session_execution,
  • total_time_users2 - sum of all lengths of total_time_session_execution for every user,
  • total_reps_users2 - total number of reps made by user in all session_executions (sum of total_reps_session_execution for every user by id_session_execution),
  • reps_per_session_users2 - average value of reps done in a session by user (total_reps_users2 divided by total_sessions_users2),
  • total_time_session_execution_min - total time of session execution in minutes,
  • reps_per_min_session_execution - average value of reps per minute in a session,
  • exercise_execution_time_min - exercise execution time in minutes (execution_time_ex_ex divided by 60),
  • calories - number of burned calories in every exercise execution by user (the formula is $\textrm{exercise_execution_time_min} \times \frac{ \textrm{met_multiplier_exercises} \times 3.5 \times \textrm{weight}}{200}$),
  • calories_session_execution - number of calories burned in a executed session,
  • total_calories_users2 - total number of calories burned by every user,
  • kcal_per_session_users2 - average number of burned calories in a session (calories_session_execution divided by total_sessions_users2),
  • YYYY/WW - year and week of session execution,

Here, most of the columns have duplicated values because for user could do multiple exercise executions and multiple sessions. It is similar with the id_session_execution - in one executed session there are multiple exercises executed - so the id values will be duplicated.

For dataset only with one unique value for each user (df_users_only), only valuable variables are id_users, created_at_users, updated_at_users, gender, date_of_birth, height, weight, activity_level, goal, body_type, body_fat, newsletter_subscription, notifications_setting, training_days_setting, language, points, scientific_data_usage, best_weekly_streak_users, BMI, BMI_category, total_sessions_users2, total_time_users2, total_reps_users2, reps_per_session_users2, total_calories_users2, kcal_per_session_users2, but not all them will be relevant for the analysis.

This data frame has 3172 users and 26 columns that describe those users.

For dataset with only one unique value for each id_session_execution (df_session_exe) the valuable variables may be id_session_execution, difficulty_feedback_session_execution, enjoyment_feedback_session_execution, reps_executed_session_execution, updated_at_session_execution, discarded_session_execution, id_sessions, order_sessions, time_duration_sessions, code_name_sessions, name_en_sessions, id_user_programs, created_at_user_programs, updated_at_user_programs, active_user_programs, current_session_id_user_programs, completed_user_programs, id_programs, created_at_programs, updated_at_programs, pro_programs, available_programs, strength_programs, endurance_programs, technique_programs, flexibility_programs, intensity_programs, name_en_programs, description_en_programs, total_time_session_execution, total_reps_session_execution, total_time_session_execution_min, reps_per_min_session_execution, exercise_execution_time_min, calories_session_execution, Year/Week_session_exe, Period_session_exe.

This data frame has 49428 sessions executed (rows).

Descriptive statistics¶

For all rows¶

The variables that will have descriptive statistics for all rows:

  • reps_executed_ex_ex,
  • execution_time_ex_ex,
  • met_multiplier_exercises,
  • calories.

Numerical data¶

Summary statistics¶
count mean std min 25% 50% 75% max var skewness kurtosis
reps_executed_ex_ex 1905740.00 6.67 8.79 0.00 0.00 5.00 10.00 271.00 77.29 4.78 53.70
execution_time_ex_ex 1905740.00 35.12 27.32 0.00 16.00 30.00 46.00 200.00 746.17 1.75 5.25
met_multiplier_exercises 1905740.00 2.87 2.26 1.00 1.00 3.00 3.80 23.00 5.10 5.81 49.03
calories 1905740.00 2.15 2.26 0.00 0.73 1.50 2.90 101.22 5.13 2.88 22.32

Reps_executed_ex_ex have mean 6.67 (SD 8.79), that means, users that were executing exercises in average of 6 times per exercise. Maximum value of reps in executed exercise is 271. Median is 5 (IQR 0 - 10) reps in an exercise. It would be sensible to check those values again, but after excluding all of the zeros and exercises called rest. Mean value of execution_time_ex_ex is 35 seconds per exercise (SD 27). Median is 30 seconds (IQR 16 - 46) and maximum is 200 seconds in an exercise. Again, it would be sensible to check the data, but not including exercises with rest name. When treating met_multiplier_exercises as numeric value, then mean value of met of all exercises done is 2.87 (SD 2.26), which is Light-Intensity Activity. Median is 3 (IQR 1 - 3.8), which is Moderate-Intensity Activity and maximum is 23, which is High-Intensity Activity. Mean value of burned calories in an executed exercise is 2.15 (SD 2.26), median is 1.5 (IQR 0.73 - 2.9) and the maximum 101.22 burned calories in one exercise. In all of those variables it would be sensible to exclude exercises with name *rest*.

Without exercise with name rest¶
count mean std min 25% 50% 75% max var skewness kurtosis
reps_executed_ex_ex 1334750.00 9.51 9.10 0.00 5.00 8.00 10.00 271.00 82.74 5.32 60.03
execution_time_ex_ex 1334750.00 38.27 27.97 0.00 21.00 31.00 50.00 200.00 782.14 1.82 5.09
met_multiplier_exercises 1334750.00 3.66 2.27 1.00 2.80 3.50 3.80 23.00 5.16 7.30 58.47
calories 1334750.00 2.83 2.39 0.00 1.34 2.20 3.59 101.22 5.69 2.80 22.57

Reps_executed_ex_ex have increased mean - from 6.67 (SD 8.79) to 9.51 (SD 9.1), that means, users that were executing exercises in average of almost 10 times per exercise. Maximum value of reps in executed exercise has the same level as before - 271. Median increased from 5 (IQR 0 - 10) to 8 (IQR 5 - 10) reps in an exercise.

Mean value of execution_time_ex_ex increased from 35 seconds per exercise (SD 27) to 38 seconds per exercise (SD 28). Median increased from 30 seconds (IQR 16 - 46) to 31 seconds (IQR 21 - 50) and maximum is still 200 seconds in an exercise.

In met_multiplier_exercises mean value of met of all exercises done increased from 2.87 (SD 2.26) to 3.66 (SD 2.27), which is Moderate-Intensity Activity. Median increased from 3 (IQR 1 - 3.8) to 3.5 (IQR 2.8 - 3.8), which is still Moderate-Intensity Activity and maximum stayed at 23, which is High-Intensity Activity.

Mean value of burned calories in an executed exercise increased from 2.15 (SD 2.26) to 2.83 (SD 2.39), median increased from 1.5 (IQR 0.73 - 2.9) to 2.2 (1.34 - 3.59) and the maximum stayed at 101.22 burned calories in one exercise.

Distribution evaluation and density plots¶

It is possible to check from which distribution data can come from (or is the closest to). Here will be used distfit function from distfit package. Every variable will be checked separately. The criterion of determination for best fit is RSS (residual sum of squares). The RSS describes the deviation predicted from actual empirical values of data. A small RSS indicates a tight fit of the model to the data. RSS is computed by

$$ RSS = \sum_{i=1}^{n} \left(y - f(x_i)\right)^2 $$

where $y_i$ is the i-th value of the variable to be predicted, $x_i$ is the i-th value of the explanatory variable, and $f(x_i)$ is the predicted value of $y_i$ (also termed as $\hat{y_i}$). (Source: https://erdogant.github.io/distfit/pages/html/Parametric.html) In the analysis will be shown the best fit for each variable and its plot.

  • reps_executed_ex_ex - the most fitting distribution is exponential (RSS = 0.00025),
[distfit] >fit..
[distfit] >transform..
[distfit] >[expon] [0.00 sec] [RSS: 0.000254757] [loc=0.000 scale=6.672]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nexpon\nRSS(loc=0, scale=6.67241)'}, xlabel='Values', ylabel='Frequency'>)
  • execution_time_ex_ex - the most fitting distribution is generalized extreme (RSS = 0.00068),
[distfit] >fit..
[distfit] >transform..
[distfit] >[genextreme] [43.6 sec] [RSS: 0.000679649] [loc=22.362 scale=18.326]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngenextreme\nRSS(c=-0.110198, loc=22.3622, scale=18.3258)'}, xlabel='Values', ylabel='Frequency'>)
  • met_multiplier_exercises - the most fitting distribution is exponential (RSS = 0.407),
[distfit] >fit..
[distfit] >transform..
[distfit] >[expon] [0.00 sec] [RSS: 0.407001] [loc=1.000 scale=1.866]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nexpon\nRSS(loc=1, scale=1.86605)'}, xlabel='Values', ylabel='Frequency'>)
  • calories - the most fitting distribution is exponential (RSS = 0.00026),
[distfit] >fit..
[distfit] >transform..
[distfit] >[expon] [0.00 sec] [RSS: 0.000258582] [loc=0.000 scale=2.154]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nexpon\nRSS(loc=0, scale=2.15362)'}, xlabel='Values', ylabel='Frequency'>)
Without exercise named rest¶
  • reps_executed_ex_ex - the most fitting distribution is generalized extreme (RSS = 0.00053),
[distfit] >fit..
[distfit] >transform..
[distfit] >[genextreme] [26.3 sec] [RSS: 0.000534944] [loc=5.773 scale=4.849]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngenextreme\nRSS(c=-0.159959, loc=5.77318, scale=4.84937)'}, xlabel='Values', ylabel='Frequency'>)
  • execution_time_ex_ex - the most fitting distribution is generalized extreme (RSS = 0.00045),
[distfit] >fit..
[distfit] >transform..
[distfit] >[genextreme] [27.9 sec] [RSS: 0.000448682] [loc=25.467 scale=18.373]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngenextreme\nRSS(c=-0.108197, loc=25.467, scale=18.3734)'}, xlabel='Values', ylabel='Frequency'>)
  • met_multiplier_exercises - the most fitting distribution is t distribution (RSS = 0.0699),
[distfit] >fit..
[distfit] >transform..
[distfit] >[t] [5.77 sec] [RSS: 0.0698539] [loc=3.388 scale=0.554]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nt\nRSS(df=2.43823, loc=3.38815, scale=0.554243)'}, xlabel='Values', ylabel='Frequency'>)
  • calories - the most fitting distribution is beta (RSS = 0.00055).
[distfit] >fit..
[distfit] >transform..
[distfit] >[beta] [23.9 sec] [RSS: 0.000551249] [loc=-0.141 scale=14778917904.728]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nbeta\nRSS(a=1.80182, b=8.96173e+09, loc=-0.14053, scale=1.47789e+10)'}, xlabel='Values', ylabel='Frequency'>)

The data don't follow normal distribution.

Categorical data¶

It is possible to take met_multiplier_exercises as a categorical variable, so it will be done as it.

Total 1.0 3.5 3.8 2.5 3.0 3.2 4.0 2.3 2.8 5.0 4.2 2.6 5.2 3.9 3.6 23.0 5.5 12.0 2.9 4.5 8.0 2.0 6.0 4.8 4.3 5.3 7.0
Frequency 1905740 571358 278906 205123 150585 116442 97140 85732 78730 76550 60891 54420 36266 19414 19012 17007 15455 4743 4444 3528 3123 2695 1982 909 890 213 160 22
Percent 100.0% 29.98% 14.64% 10.76% 7.9% 6.11% 5.1% 4.5% 4.13% 4.02% 3.2% 2.86% 1.9% 1.02% 1.0% 0.89% 0.81% 0.25% 0.23% 0.19% 0.16% 0.14% 0.1% 0.05% 0.05% 0.01% 0.01% 0.0%

Most of the exercises done have met_multiplier equal to 1 (30%).

Total Rest Knee push-up Pull-up Squat Paleo sit-up Burpee Push-up Dips Skipping Bridge Lunges (right) Lunges (left) Jumping squat Free thruster Sprint Side lunge Chin up Plank pivot Wall climb Leg raises Superman Leg lifts Jumping jacks Plank balance Side to side squat Mckenzie Plank Glute march Diamond push-up Plank spider Semi burpee Sit-up Windshield wiper Flow a Mountain runner Hindu push-up Bulgarian squat (left) Bulgarian squat (right) Diver Suspended row Backward lunge Pallof press (left) Handstand push-up Isometric bridge Mountain climber Pallof press (right) V sit-up Swings 1 leg bridge (left) 1 leg bridge (right) Horizontal jump Mountain climbers up Forward lunge Semi V sit-up Jumping lunge Donkey kicks Rocket (right) Mountain climbers down Rocket (left) Plank taps (shoulder, hip, knee, ankle) Shoulder swimmers Side plank (right) Push-up with hand lift 1 leg dead lift (right) 1 leg dead lift (left) Forward thrust Deck squat Flow b Russian twist Press (right) Side plank (left) Press (left) Australian pull-up Weighted backward lunge Double jump rope Row (left) Assisted pistol squat with box (right) Row (right) Burrol Goblet squat Assisted pistol squat with box (left) Reptile push-up 2 legs half burpee Spider push-up Star jump Clean (left) Clean (right) Plank extension Ring dips 1 Weighted side lunge Flow c Skipping knees & elbows Pistol squat (right) Push press (left) Push press (right) Eccentric subescapular (left) Pull-up with rings 1 Side to side jump Farmer's walk (left) Farmer's walk (right) Rocket with weight (left) Pistol squat (left) Lunge Rocket with weight (right) Assisted pull-up Hammer plank Pelvis circles Push-up with rings 1 Closed push-ups Skater jump Row with rings 1 Roll-out with rings 1 Plank rotation Open push-up Hold with rings Windmill with weight (right) Power clean with KB Pull-up hands together Shoulder to shoulder Inchworm Turkish get up with weight (left) Turkish get up with weight (right) Flow d Clap push-up Shoulder opening on wall American swing Pistol squat with rings Jumping squat with weight Isometric in L1 Bench step up with weight 1 leg deadlift with KB (left) Lateral push-up 1 leg deadlift with KB (right) Windmill with weight (left) Push-up with roll Turkish get-ups (right) Squat with rings Windmill plank Weighted forward lunge Bulgarian squat with weight (left) Knees to elbows Turkish get-ups (left) Trx pull-ups Thruster with KB Tiger push-up Isometric squat Extended leg backroll Side plank with knee (right) Bulgarian squat with weigth (right) Chin to chest Neck strecht Australian pull-up with box and trx Pivot lunges (right) Mountain climbers Reverse lunges with extension (right) Side plank with knee (left) Pivot lunges (left) Reverse lunges with extension (left) Flow e Shoulder circles Double row trx Rear delt fly 1 Open row trx Circles of knees together Tricep extension Shoulder taps Vertical ring push-up 1 Crossed foot to hand Thruster with KB (right) Leg raises 1 Weighted Front Squats Backroll Kneeling to standing Press trx Pecs minor stretch (right) Pecs minor stretch (left) Fly Thoracic rotations on knees (left) Thoracic rotations on kness (right) Face pull Hamstring stretching (left) Eccentric subscapular (right) Hamstring stretching (right) External rotators (right) External rotators (left) Plank with rings Thoracic extensions Bulgarian squat with rings (right) Deficit push-up Cat to dog Bulgarian squat with rings (left) High squat Cat segmentations Leg raises to inverted hang 1 Neck circles Thruster with KB (left) Clapping push-up Elbow and wrist circles Bodyweight tríceps extension Bicep curl 1 Alternating mountain climber Jumping lunges (left) Jumping lunges (right) Open lunges (right) Body saws with TRX Push press Jump rope Inclined push-up Archer push-up 1 L push-up Segmented wall bends Jumping pull-up Windmill Open lunges (left) Hanging leg twist Nordic curl Double eights Abductor stretching Squat spine rotations Short run Swing digs Lateral knee push-up Jumping lunge with weight Neck circumductions Thoracic rotations (left) Archer chin-up 1 Chest fly 1 Reverse spider push-up Surfer Trx pistol (left) Isometric knee raises Shoulder clean Seated lateralizations Sitting in seiza Declined push-up Box jump Trx pistol (right) Wide squat Hip thrust Sun hug Turning row trx OH lunges with weight (right) OH lunges with weight (left) Folding table Forward lunges to balance (left) Inverted tuck to chin-up Forward lunges to balance (right) Segmented wall extensions Bridge segmentations L Ring dips Assisted chin-ups Tucked frontlever pull-up 1 Deadlift Scapular pushups Inertial rotations Folding and extending with squat Front squat with weight Backward lunge with extension L-sit roll to chin-up Get up! Suspended bíceps exercise Inchworm with push-up Hip lift with rings Elbows to floor in squat Archer row 1 Knee squat L-push-up Skin the cat 1 Jump chin up Sit-up with weight Seated hip rotations Hanging lateral knee raises Chin ups Asymmetrical plank Ankle circles Face pull 1 False grip pull-up Assisted muscle-up Ring dips 3 One leg bridge Ring dips 2 Shoulder dislocations with band Chest circumductions Pull-up with rings 3 Leg raise folded knees Balancing front lunge Bicep curl 2 False grip flexed hang Push-up with rings 3 Rolling push-up Pull-up with rings 2 Row with rings 3 Pistol squat trx Farmer's Walk (Left side) Thruster with kettlebell left Jump Vertical ring push-up 2 False grip hang Windmill push-up Farmer's Walk (Right side) Tricep dip Mountain climber frog Row with rings 2 Leg raises to inverted hang 2 Archer chin-up 2 Tuck shoulder stand 1 Mountain push-up Push-up with rings 2 Knight lunges (right) Knight lunges (left) L-sit with rings 3 Skin the cat 2 Separate knee circles Supine hang bar Pelvic tilting circles Lumbar circumductions Chest expansions Deficit L push-up Clean and jerk Chest fly 2 Mountain climber with rotation (right) Mountain climber with rotation (left) Roll-out with rings 3 Roll-out with rings 2 Toes to bar Tiger mckenzie Diagonal Climber Parallel Squat Sit-up with extension Hip plank Leg raises 3 Freestyle Tuck hold to tuck shoulder stand Plank press Tucked frontlever pull-up 2 Farmer walk Tiger Turkish get-ups with weight (right) Underswitch Assisted pistol squat (right) Side to side jump squat Turkish get-ups with weight (left) Assisted pistol squat with box Assisted pistol squat (left) 1 leg deadlift Medium Skips Back 1 leg dead lift 1with KB (right) Leg raises 2 L-sit with rings 2 High Skips Clapping knee pushup Archer row 2 Burpee roll Tuck shoulder stand 2 Double burpee Knee diamond push-up Spiderman Seiza knees transition Open knee push-up Multijumps 1 leg dead lift with KB (left) Knee clap push-up Two feet mountain climber Clamshell Face pull 2 Plank hand to opposite foot Push-up climber Abdomen rowler Rocket back Hollow legs Pull-up with table Spiderman Squat Muscle-up 1 Seated squat trx Crunch with hip lock Underside kick Oblique with foot support Isometric supine hand-knee Kneeling squat Hip boxing Cross jacks Stride backward Diagonal crunch Stride forward Stride front to back Quadruped Superman Bulgarian squat with weight (right) Assisted pistol squat Assisted push-up Assisted squat Two feet hip thrust Isometric bridge with weight Wrist flexion and extension Single leg hip thrust Knee push-up hand lift Mountain climber plank Gluteal fan Lateral lunge with drop Lateral mountain climber Frontal mountain climber Reverse spider knee push-up Lateral squat Star abs Open lunge Bubu Hindu knee push-up Oblique with knee support Clamshell with knee extension Alternate Superman Inverted foot to hand Hollow Alternating overhead plank 1 leg dead lift with KB Alternating shoulder press Jumping lunges with weight (left) Jumping lunges with weight (right) Diagonals Muscle-up 2 Leg raise on floor Windmill paleo Rocket Pivot lunge Walk Half clean Bulgarian squat OH lunges with weight Clock push-up Hip thrust with weight Deficit handstand push-up Burpee pull-ups Foot to hand Sentadas Dynamic frontal hip stretch Zancadas Left foot to hand cross Reptile knee push-up Burpee with knee to elbows jump Right foot to hand cross Hand-to-hand circles Supporting elbow circles
Frequency 1905740 570990 56712 48597 47546 42711 34216 34122 32149 27617 25570 23198 22000 18795 18727 15455 14886 14857 14331 13763 13465 12817 12379 11889 11214 9604 9597 9539 9461 9111 9012 8381 8340 8226 8198 8179 8084 8012 7935 7772 7760 7409 7265 7240 7148 7066 7000 6740 6728 6652 6630 6607 6426 6426 6385 6244 6085 5828 5807 5644 5555 5366 5307 5296 5231 5196 5115 5062 5034 4902 4837 4813 4666 4549 4485 4444 4438 4437 4429 4367 4350 4284 4251 4180 4173 3837 3774 3769 3709 3657 3597 3536 3528 3467 3409 3401 3372 3279 3272 3236 3227 3196 3192 3173 3168 3140 3121 3120 3077 3061 2961 2957 2892 2890 2882 2872 2837 2777 2715 2715 2696 2683 2671 2657 2640 2615 2602 2591 2579 2544 2527 2522 2520 2520 2519 2512 2491 2479 2456 2422 2374 2371 2369 2359 2353 2351 2344 2323 2299 2292 2248 2248 2240 2237 2222 2201 2188 2172 2144 2136 2074 2060 2041 2000 1995 1987 1980 1944 1910 1904 1834 1831 1788 1768 1734 1686 1686 1686 1686 1686 1686 1686 1686 1686 1686 1686 1671 1667 1662 1637 1634 1596 1569 1569 1560 1551 1524 1517 1515 1471 1462 1460 1409 1398 1394 1374 1373 1372 1370 1361 1354 1332 1326 1321 1316 1313 1250 1225 1223 1214 1182 1182 1149 1146 1139 1124 1096 1091 1074 1065 1060 1057 1051 1046 1046 1044 1036 1024 1020 1004 1004 993 968 968 947 946 945 937 915 915 909 907 897 892 888 888 888 882 880 868 840 773 763 763 731 720 714 651 629 626 614 610 601 594 579 523 515 508 484 472 472 451 444 444 441 436 426 422 411 408 399 397 393 384 382 380 380 375 375 372 368 363 363 362 352 344 343 333 328 315 315 314 312 305 305 305 305 305 296 289 288 285 285 284 280 265 262 255 245 240 235 234 230 230 215 213 208 204 202 195 195 194 191 190 187 186 186 172 171 171 166 166 165 161 160 156 151 146 145 144 144 142 139 136 132 127 127 117 116 113 112 111 106 103 102 102 98 96 95 93 93 88 88 85 82 81 79 77 77 74 70 70 69 67 66 66 66 65 63 62 58 57 56 52 50 46 46 44 41 37 37 36 29 29 28 25 24 24 22 22 22 21 20 17 17 16 12 12 9 9 5 5 4 3 3 3 2 2 2 2 2 2
Percent 100.0% 29.96% 2.98% 2.55% 2.49% 2.24% 1.8% 1.79% 1.69% 1.45% 1.34% 1.22% 1.15% 0.99% 0.98% 0.81% 0.78% 0.78% 0.75% 0.72% 0.71% 0.67% 0.65% 0.62% 0.59% 0.5% 0.5% 0.5% 0.5% 0.48% 0.47% 0.44% 0.44% 0.43% 0.43% 0.43% 0.42% 0.42% 0.42% 0.41% 0.41% 0.39% 0.38% 0.38% 0.38% 0.37% 0.37% 0.35% 0.35% 0.35% 0.35% 0.35% 0.34% 0.34% 0.34% 0.33% 0.32% 0.31% 0.3% 0.3% 0.29% 0.28% 0.28% 0.28% 0.27% 0.27% 0.27% 0.27% 0.26% 0.26% 0.25% 0.25% 0.24% 0.24% 0.24% 0.23% 0.23% 0.23% 0.23% 0.23% 0.23% 0.22% 0.22% 0.22% 0.22% 0.2% 0.2% 0.2% 0.19% 0.19% 0.19% 0.19% 0.19% 0.18% 0.18% 0.18% 0.18% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.16% 0.16% 0.16% 0.16% 0.16% 0.16% 0.16% 0.15% 0.15% 0.15% 0.15% 0.15% 0.15% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.14% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.11% 0.11% 0.11% 0.11% 0.11% 0.11% 0.11% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%

Looking at name_en_exercises, we can see that most of the exercises executed had been REST (30%), and then KNEE PUSH-UP (3%). Now, it is seen that it would be sensible, to check this data without REST exercise.

Without exercise with name rest¶
Total 3.5 3.8 2.5 3.0 3.2 4.0 2.3 2.8 5.0 4.2 2.6 5.2 3.9 3.6 23.0 5.5 12.0 2.9 4.5 8.0 2.0 6.0 4.8 1.0 4.3 5.3 7.0
Frequency 1334750 278906 205123 150585 116442 97140 85732 78730 76550 60891 54420 36266 19414 19012 17007 15455 4743 4444 3528 3123 2695 1982 909 890 368 213 160 22
Percent 100.0% 20.9% 15.37% 11.28% 8.72% 7.28% 6.42% 5.9% 5.74% 4.56% 4.08% 2.72% 1.45% 1.42% 1.27% 1.16% 0.36% 0.33% 0.26% 0.23% 0.2% 0.15% 0.07% 0.07% 0.03% 0.02% 0.01% 0.0%

When excluding exercise with name rest and taking met_multiplier as a categorical variable, it can be seen than most frequent MET value is 3.5 (21%).

Total Knee push-up Pull-up Squat Paleo sit-up Burpee Push-up Dips Skipping Bridge Lunges (right) Lunges (left) Jumping squat Free thruster Sprint Side lunge Chin up Plank pivot Wall climb Leg raises Superman Leg lifts Jumping jacks Plank balance Side to side squat Mckenzie Plank Glute march Diamond push-up Plank spider Semi burpee Sit-up Windshield wiper Flow a Mountain runner Hindu push-up Bulgarian squat (left) Bulgarian squat (right) Diver Suspended row Backward lunge Pallof press (left) Handstand push-up Isometric bridge Mountain climber Pallof press (right) V sit-up Swings 1 leg bridge (left) 1 leg bridge (right) Horizontal jump Mountain climbers up Forward lunge Semi V sit-up Jumping lunge Donkey kicks Rocket (right) Mountain climbers down Rocket (left) Plank taps (shoulder, hip, knee, ankle) Shoulder swimmers Side plank (right) Push-up with hand lift 1 leg dead lift (right) 1 leg dead lift (left) Forward thrust Deck squat Flow b Russian twist Press (right) Side plank (left) Press (left) Australian pull-up Weighted backward lunge Double jump rope Row (left) Assisted pistol squat with box (right) Row (right) Burrol Goblet squat Assisted pistol squat with box (left) Reptile push-up 2 legs half burpee Spider push-up Star jump Clean (left) Clean (right) Plank extension Ring dips 1 Weighted side lunge Flow c Skipping knees & elbows Pistol squat (right) Push press (left) Push press (right) Eccentric subescapular (left) Pull-up with rings 1 Side to side jump Farmer's walk (left) Farmer's walk (right) Rocket with weight (left) Pistol squat (left) Lunge Rocket with weight (right) Assisted pull-up Hammer plank Pelvis circles Push-up with rings 1 Closed push-ups Skater jump Row with rings 1 Roll-out with rings 1 Plank rotation Open push-up Hold with rings Windmill with weight (right) Power clean with KB Shoulder to shoulder Pull-up hands together Inchworm Turkish get up with weight (left) Turkish get up with weight (right) Flow d Clap push-up Shoulder opening on wall American swing Pistol squat with rings Jumping squat with weight Isometric in L1 Bench step up with weight 1 leg deadlift with KB (left) 1 leg deadlift with KB (right) Lateral push-up Windmill with weight (left) Push-up with roll Turkish get-ups (right) Squat with rings Windmill plank Weighted forward lunge Bulgarian squat with weight (left) Knees to elbows Turkish get-ups (left) Trx pull-ups Thruster with KB Tiger push-up Isometric squat Extended leg backroll Side plank with knee (right) Bulgarian squat with weigth (right) Chin to chest Neck strecht Australian pull-up with box and trx Pivot lunges (right) Mountain climbers Reverse lunges with extension (right) Side plank with knee (left) Pivot lunges (left) Reverse lunges with extension (left) Flow e Shoulder circles Double row trx Rear delt fly 1 Open row trx Circles of knees together Tricep extension Shoulder taps Vertical ring push-up 1 Crossed foot to hand Thruster with KB (right) Leg raises 1 Weighted Front Squats Backroll Kneeling to standing Press trx Hamstring stretching (left) External rotators (left) Thoracic rotations on kness (right) Fly Hamstring stretching (right) Eccentric subscapular (right) Thoracic rotations on knees (left) Face pull Pecs minor stretch (left) Pecs minor stretch (right) External rotators (right) Plank with rings Thoracic extensions Bulgarian squat with rings (right) Deficit push-up Cat to dog Bulgarian squat with rings (left) Cat segmentations High squat Leg raises to inverted hang 1 Neck circles Thruster with KB (left) Clapping push-up Elbow and wrist circles Bodyweight tríceps extension Bicep curl 1 Alternating mountain climber Jumping lunges (left) Jumping lunges (right) Open lunges (right) Body saws with TRX Push press Jump rope Inclined push-up Archer push-up 1 L push-up Segmented wall bends Jumping pull-up Windmill Open lunges (left) Hanging leg twist Nordic curl Double eights Abductor stretching Squat spine rotations Swing digs Short run Lateral knee push-up Jumping lunge with weight Neck circumductions Thoracic rotations (left) Archer chin-up 1 Chest fly 1 Reverse spider push-up Surfer Trx pistol (left) Isometric knee raises Shoulder clean Seated lateralizations Sitting in seiza Declined push-up Box jump Trx pistol (right) Wide squat Sun hug Hip thrust Turning row trx OH lunges with weight (left) OH lunges with weight (right) Folding table Forward lunges to balance (left) Inverted tuck to chin-up Forward lunges to balance (right) Segmented wall extensions Bridge segmentations L Ring dips Assisted chin-ups Tucked frontlever pull-up 1 Deadlift Folding and extending with squat Scapular pushups Inertial rotations Front squat with weight Backward lunge with extension L-sit roll to chin-up Get up! Suspended bíceps exercise Inchworm with push-up Hip lift with rings Elbows to floor in squat Archer row 1 Knee squat L-push-up Skin the cat 1 Jump chin up Sit-up with weight Seated hip rotations Hanging lateral knee raises Chin ups Asymmetrical plank Ankle circles Face pull 1 False grip pull-up Assisted muscle-up Ring dips 3 One leg bridge Ring dips 2 Chest circumductions Shoulder dislocations with band Pull-up with rings 3 Leg raise folded knees Balancing front lunge Bicep curl 2 False grip flexed hang Push-up with rings 3 Rolling push-up Pull-up with rings 2 Row with rings 3 Pistol squat trx Farmer's Walk (Left side) Thruster with kettlebell left Jump Vertical ring push-up 2 False grip hang Windmill push-up Farmer's Walk (Right side) Tricep dip Mountain climber frog Row with rings 2 Leg raises to inverted hang 2 Archer chin-up 2 Tuck shoulder stand 1 Mountain push-up Push-up with rings 2 Knight lunges (right) Knight lunges (left) L-sit with rings 3 Skin the cat 2 Supine hang bar Chest expansions Pelvic tilting circles Separate knee circles Lumbar circumductions Deficit L push-up Clean and jerk Chest fly 2 Mountain climber with rotation (left) Mountain climber with rotation (right) Roll-out with rings 3 Roll-out with rings 2 Toes to bar Tiger mckenzie Diagonal Climber Parallel Squat Sit-up with extension Hip plank Leg raises 3 Freestyle Tuck hold to tuck shoulder stand Plank press Tucked frontlever pull-up 2 Farmer walk Tiger Turkish get-ups with weight (right) Assisted pistol squat (right) Underswitch Side to side jump squat Turkish get-ups with weight (left) Assisted pistol squat with box Assisted pistol squat (left) Medium Skips 1 leg deadlift Back 1 leg dead lift 1with KB (right) Leg raises 2 L-sit with rings 2 High Skips Clapping knee pushup Archer row 2 Burpee roll Tuck shoulder stand 2 Double burpee Knee diamond push-up Spiderman Seiza knees transition Open knee push-up Multijumps 1 leg dead lift with KB (left) Knee clap push-up Two feet mountain climber Clamshell Face pull 2 Plank hand to opposite foot Push-up climber Abdomen rowler Rocket back Hollow legs Pull-up with table Spiderman Squat Muscle-up 1 Seated squat trx Crunch with hip lock Underside kick Oblique with foot support Kneeling squat Isometric supine hand-knee Hip boxing Cross jacks Stride backward Diagonal crunch Stride forward Stride front to back Quadruped Superman Bulgarian squat with weight (right) Assisted pistol squat Assisted squat Assisted push-up Two feet hip thrust Isometric bridge with weight Single leg hip thrust Wrist flexion and extension Knee push-up hand lift Mountain climber plank Gluteal fan Lateral lunge with drop Lateral mountain climber Frontal mountain climber Reverse spider knee push-up Lateral squat Star abs Open lunge Bubu Hindu knee push-up Oblique with knee support Alternate Superman Clamshell with knee extension Inverted foot to hand Alternating overhead plank Hollow 1 leg dead lift with KB Alternating shoulder press Jumping lunges with weight (right) Jumping lunges with weight (left) Leg raise on floor Muscle-up 2 Diagonals Windmill paleo Rocket Walk Pivot lunge Half clean Bulgarian squat OH lunges with weight Clock push-up Hip thrust with weight Deficit handstand push-up Burpee pull-ups Foot to hand Dynamic frontal hip stretch Sentadas Zancadas Hand-to-hand circles Burpee with knee to elbows jump Supporting elbow circles Left foot to hand cross Right foot to hand cross Reptile knee push-up Rest
Frequency 1334750 56712 48597 47546 42711 34216 34122 32149 27617 25570 23198 22000 18795 18727 15455 14886 14857 14331 13763 13465 12817 12379 11889 11214 9604 9597 9539 9461 9111 9012 8381 8340 8226 8198 8179 8084 8012 7935 7772 7760 7409 7265 7240 7148 7066 7000 6740 6728 6652 6630 6607 6426 6426 6385 6244 6085 5828 5807 5644 5555 5366 5307 5296 5231 5196 5115 5062 5034 4902 4837 4813 4666 4549 4485 4444 4438 4437 4429 4367 4350 4284 4251 4180 4173 3837 3774 3769 3709 3657 3597 3536 3528 3467 3409 3401 3372 3279 3272 3236 3227 3196 3192 3173 3168 3140 3121 3120 3077 3061 2961 2957 2892 2890 2882 2872 2837 2777 2715 2715 2696 2683 2671 2657 2640 2615 2602 2591 2579 2544 2527 2522 2520 2520 2519 2512 2491 2479 2456 2422 2374 2371 2369 2359 2353 2351 2344 2323 2299 2292 2248 2248 2240 2237 2222 2201 2188 2172 2144 2136 2074 2060 2041 2000 1995 1987 1980 1944 1910 1904 1834 1831 1788 1768 1734 1686 1686 1686 1686 1686 1686 1686 1686 1686 1686 1686 1671 1667 1662 1637 1634 1596 1569 1569 1560 1551 1524 1517 1515 1471 1462 1460 1409 1398 1394 1374 1373 1372 1370 1361 1354 1332 1326 1321 1316 1313 1250 1225 1223 1214 1182 1182 1149 1146 1139 1124 1096 1091 1074 1065 1060 1057 1051 1046 1046 1044 1036 1024 1020 1004 1004 993 968 968 947 946 945 937 915 915 909 907 897 892 888 888 888 882 880 868 840 773 763 763 731 720 714 651 629 626 614 610 601 594 579 523 515 508 484 472 472 451 444 444 441 436 426 422 411 408 399 397 393 384 382 380 380 375 375 372 368 363 363 362 352 344 343 333 328 315 315 314 312 305 305 305 305 305 296 289 288 285 285 284 280 265 262 255 245 240 235 234 230 230 215 213 208 204 202 195 195 194 191 190 187 186 186 172 171 171 166 166 165 161 160 156 151 146 145 144 144 142 139 136 132 127 127 117 116 113 112 111 106 103 102 102 98 96 95 93 93 88 88 85 82 81 79 77 77 74 70 70 69 67 66 66 66 65 63 62 58 57 56 52 50 46 46 44 41 37 37 36 29 29 28 25 24 24 22 22 22 21 20 17 17 16 12 12 9 9 5 5 4 3 3 3 2 2 2 2 2 2 0
Percent 100.0% 4.25% 3.64% 3.56% 3.2% 2.56% 2.56% 2.41% 2.07% 1.92% 1.74% 1.65% 1.41% 1.4% 1.16% 1.12% 1.11% 1.07% 1.03% 1.01% 0.96% 0.93% 0.89% 0.84% 0.72% 0.72% 0.71% 0.71% 0.68% 0.68% 0.63% 0.62% 0.62% 0.61% 0.61% 0.61% 0.6% 0.59% 0.58% 0.58% 0.56% 0.54% 0.54% 0.54% 0.53% 0.52% 0.5% 0.5% 0.5% 0.5% 0.49% 0.48% 0.48% 0.48% 0.47% 0.46% 0.44% 0.44% 0.42% 0.42% 0.4% 0.4% 0.4% 0.39% 0.39% 0.38% 0.38% 0.38% 0.37% 0.36% 0.36% 0.35% 0.34% 0.34% 0.33% 0.33% 0.33% 0.33% 0.33% 0.33% 0.32% 0.32% 0.31% 0.31% 0.29% 0.28% 0.28% 0.28% 0.27% 0.27% 0.26% 0.26% 0.26% 0.26% 0.25% 0.25% 0.25% 0.25% 0.24% 0.24% 0.24% 0.24% 0.24% 0.24% 0.24% 0.23% 0.23% 0.23% 0.23% 0.22% 0.22% 0.22% 0.22% 0.22% 0.22% 0.21% 0.21% 0.2% 0.2% 0.2% 0.2% 0.2% 0.2% 0.2% 0.2% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.19% 0.18% 0.18% 0.18% 0.18% 0.18% 0.18% 0.18% 0.18% 0.18% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.17% 0.16% 0.16% 0.16% 0.16% 0.16% 0.16% 0.15% 0.15% 0.15% 0.15% 0.15% 0.15% 0.15% 0.14% 0.14% 0.14% 0.14% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.13% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.11% 0.11% 0.11% 0.11% 0.11% 0.11% 0.11% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.1% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.09% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.08% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.06% 0.06% 0.06% 0.06% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.05% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%

Most frequent exercise done is KNEE PUSH-UP (4.25%), then PULL-UP (3.64%) and SQUAT (3.56%).

For just exercises¶

Taking into consideration only exercises, we can look into

  • met_multiplier_exercises.

Calories are not taken into consideration, because for every user the calories value for an exercise is different. It is possible to create an average for each exercise. So we want to keep value of each exercise for all users. This variable will be named as avg_calories_for_exercise.

Numerical data¶

Summary statistics¶

Below there are descriptive statistics of met_multiplier_exercises and avg_calories_for_exercises.

count mean std min 25% 50% 75% max var skewness kurtosis
met_multiplier_exercises 472.00 3.45 1.40 1.00 2.50 3.50 3.92 23.00 1.97 6.56 82.70
avg_calories_for_exercise 472.00 3.14 1.62 0.31 2.00 2.94 3.98 12.60 2.62 1.36 4.02

When met_multiplier_exercises will be taken into consideration as numerical variable, the mean value for all exercises is 3.45 (SD 1.4), that means most of the exercises have Moderate-Intensity Activity level. Maximum value is 23, which is Vigorous-Intensity Activity exercise (it is sprint). For avg_calories_for_exercises, mean number of average burned calories for all exercises is 3.14 (SD 1.6). Maximum value of average burned calories is 12.6 (it is a sprint).

Distribution evaluation and density plot¶

Again, the distribution of data will be checked for every variable. Goodness of fit will depend on RSS.

  • met_multiplier - the most fitting distribution is Weibull (RSS = 0.13),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.03 sec] [RSS: 0.131817] [loc=3.500 scale=0.780]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=0.967948, loc=3.5, scale=0.78027)'}, xlabel='Values', ylabel='Frequency'>)
  • avg_calories_for_exercise - the most fitting distribution is gamma (RSS = 0.039),
[distfit] >fit..
[distfit] >transform..
[distfit] >[gamma] [0.01 sec] [RSS: 0.0391767] [loc=-0.036 scale=0.800]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngamma\nRSS(a=3.9732, loc=-0.0360021, scale=0.799698)'}, xlabel='Values', ylabel='Frequency'>)

The data don't follow normal distribution.

Categorical data¶

For categorical data only met_multiplier variable will be taken into consideration. Below there are frequency table and plot for this variable.

Total 3.5 2.3 3.8 4.0 3.2 2.5 3.0 4.2 2.8 5.0 2.0 3.6 5.2 2.6 1.0 3.9 6.0 5.5 8.0 4.5 4.8 4.3 5.3 7.0 12.0 23.0 2.9
Frequency 472 62 58 56 52 46 42 23 19 19 14 13 10 9 9 8 7 6 4 4 3 2 1 1 1 1 1 1
Percent 100.0% 13.14% 12.29% 11.86% 11.02% 9.75% 8.9% 4.87% 4.03% 4.03% 2.97% 2.75% 2.12% 1.91% 1.91% 1.69% 1.48% 1.27% 0.85% 0.85% 0.64% 0.42% 0.21% 0.21% 0.21% 0.21% 0.21% 0.21%

Most of the exercises have MET equal to 3.5 (Moderate-Intensity Activity), then 2.3 (Light-Intensity Activity).

For USERS¶

For users we will take into consideration:

  • gender,
  • height,
  • weight,
  • activity_level,
  • goal,
  • body_type,
  • body_fat,
  • newsletter_subscription,
  • notifications_setting,
  • training_days_setting,
  • language,
  • points,
  • scientific_data_usage,
  • best_weekly_streak_users,
  • total_sessions_users2,
  • total_time_users2,
  • total_reps_users2,
  • reps_per_session_users2,
  • total_calories_users2,
  • kcal_per_session_users2,
  • BMI,
  • BMI_category.

Numerical data¶

As numerical data, variables:

  • height,
  • weight,
  • body_fat,
  • training_days_setting,
  • points,
  • best_weekly_streak_users,
  • total_sessions_users2,
  • total_time_users2,
  • total_reps_users2,
  • reps_per_session_users2,
  • total_calories_users2,
  • kcal_per_session_users2,
  • BMI

will be taken into consideration. Also, body_fat and training_days_setting will be taken as categorical variable in the later part.

Summary statistics¶
count mean std min 25% 50% 75% max var skewness kurtosis
height 3172.00 171.45 9.09 142.00 165.00 172.00 178.00 198.00 82.67 -0.07 -0.48
weight 3172.00 71.55 13.76 40.00 61.00 71.00 80.00 147.00 189.31 0.62 0.80
points 3172.00 63432.65 177832.66 0.00 387.50 3700.00 45653.25 2749450.00 31624455298.06 6.61 63.70
best_weekly_streak_users 3172.00 4.73 6.45 1.00 1.00 2.00 5.00 49.00 41.54 3.15 12.38
total_sessions_users2 3172.00 15.58 25.02 1.00 2.00 5.00 18.00 311.00 625.88 3.43 18.38
total_time_users2 3172.00 21097.86 36572.68 18.00 1830.75 5685.50 22869.25 471782.80 1337560896.46 3.62 21.50
total_reps_users2 3172.00 4008.79 7481.15 8.00 375.50 1061.50 4221.75 120390.00 55967531.02 4.87 41.27
reps_per_session_users2 3172.00 221.08 84.64 8.00 167.06 219.00 267.00 670.10 7164.68 0.60 1.47
total_calories_users2 3172.00 1293.90 2340.82 0.87 107.55 333.16 1382.42 31452.30 5479429.42 3.93 24.68
kcal_per_session_users2 3172.00 70.29 32.64 0.87 47.54 66.77 87.93 297.64 1065.05 1.33 4.58
BMI 3172.00 24.23 3.69 13.78 21.78 23.66 25.95 48.55 13.62 1.20 2.80

There are 3172 users in a database. Mean value of height among the users is 171.5 cm (SD 9.09), median is 172 cm (IQR 165 - 178). The shortest person is 142 cm tall and the tallest person is 198 cm tall. Mean weight of the user is 71.55 kg (SD 13.76) and median is 71 kg (61 - 80). The heaviest person has 147 kg and the lightest - 40 kg. When it comes to the body_fat, mean value is 23.5% (SD 8.1), median is 20% (IQR 20 - 30). Maximum value of body fat is 50% and minimum is 6%. Mean value of number of days in a week setting is 3.6 days (SD 1.3), median is 3 days (IQR 3 - 4), minimum is 1 day a week and maximum is 7 days a week. Mean value of points is 63432 (SD 177833), median is 3700 points (IQR 388 - 45653). Maximum value of points is 2749450. Mean best_weakly_streak among users is 4.73 weeks (SD 6.45), median is 2 weeks (IQR 1 - 5). Minimum value is one week and maximum is 49 weeks. Unfortunately, because of previous data cleaning, a lot of exercise rows were deleted and now, this variable is not fully correct. Mean value of total number of sessions executed is 16 sessions (SD 25), median is 5 sessions (IQR 2 - 18) and maximum number of sessions is 311. Variable total_time_users2 is given in seconds. It is a value that says how much time did a user spend on all of the sessions (and exercises). Average is 21098 seconds (~ 352 minutes, almost 6 hours) (SD 36573), median is 5686 seconds (~ 95 minutes) (IQR 1831 - 22669). Maximum time of total time is 471783 seconds (~7863 minutes, 131 hours). Mean of total_reps (all of the reps users did in all of the exercises and sessions) is 4009 reps (SD 7481), median is 1062 reps (IQR 376 - 4222). Maximum number of reps done is 120390 reps. Every user has calculated average number of reps made in session. Mean value of this average is 221 reps (in a session) (SD 85), median is 219 (IQR 167 - 267). Maximum average of reps in a session is 670. Total number of calories (total_calories) is number of calories that user burned in all of the sessions. Mean number is 1294 calories (SD 2341), median is 333 calories (IQR 108 - 1382). Maximum value of burned calories is 31452. Kcal_per_session says how many calories (in average) did the user burned in one session. Mean value is 70 kcal in a session (SD 33), median is 67 kcal in a session (IQR 48 - 88). Maximum value is 298 kcal in average in a session. Mean value of BMI is 24.2 (SD 3.7), which is normal weight. Median id 23.7 (IQR 21.8 - 26), which is also a normal category. Minimum is 13.8 - underweight and maximum is 48.6 - which is obesity.

Distribution evaluation and density plots¶

The distribution of data will be checked for every variable. Goodness of fit will depend on RSS.

  • height - the most fitting distribution is beta (RSS = 0.0055),
[distfit] >fit..
[distfit] >transform..
[distfit] >[beta] [0.04 sec] [RSS: 0.00550527] [loc=136.931 scale=65.649]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nbeta\nRSS(a=6.33027, b=5.71007, loc=136.931, scale=65.6486)'}, xlabel='Values', ylabel='Frequency'>)
  • weight - the most fitting distribution is beta (RSS = 0.0006)
[distfit] >fit..
[distfit] >transform..
[distfit] >[beta] [0.05 sec] [RSS: 0.000563108] [loc=26.783 scale=13583483.261]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nbeta\nRSS(a=10.5565, b=3.20316e+06, loc=26.7829, scale=1.35835e+07)'}, xlabel='Values', ylabel='Frequency'>)
  • body_fat - the most fitting distribution is Weibull (RSS = 0.17),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.03 sec] [RSS: 0.170709] [loc=22.807 scale=7.219]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=1.43264, loc=22.8066, scale=7.21901)'}, xlabel='Values', ylabel='Frequency'>)
  • training_days_setting - the most fitting distribution is Weibull (RSS = 15.94),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.02 sec] [RSS: 15.9434] [loc=3.579 scale=1.151]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=1.49804, loc=3.57946, scale=1.15081)'}, xlabel='Values', ylabel='Frequency'>)
  • points - the most fitting distribution is exponential (RSS < 0.0005),
[distfit] >fit..
[distfit] >transform..
[distfit] >[expon] [0.00 sec] [RSS: 2.28453e-11] [loc=0.000 scale=63432.646]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nexpon\nRSS(loc=0, scale=63432.6)'}, xlabel='Values', ylabel='Frequency'>)
  • best_weekly_streak_users - the most fitting distribution is gamma (RSS = 0.014),
[distfit] >fit..
[distfit] >transform..
[distfit] >[gamma] [0.05 sec] [RSS: 0.0140818] [loc=1.000 scale=7.415]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngamma\nRSS(a=0.459432, loc=1, scale=7.41542)'}, xlabel='Values', ylabel='Frequency'>)
  • total_sessions_users2 - the most fitting distribution is t distribution (RSS = 0.00019),
[distfit] >fit..
[distfit] >transform..
[distfit] >[t] [0.08 sec] [RSS: 0.00019219] [loc=2.868 scale=2.721]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nt\nRSS(df=0.701907, loc=2.86753, scale=2.7207)'}, xlabel='Values', ylabel='Frequency'>)
  • total_time_users2 - the most fitting distribution is t distribution (RSS < 0.0005),
[distfit] >fit..
[distfit] >transform..
[distfit] >[t] [0.07 sec] [RSS: 7.33549e-11] [loc=2757.460 scale=2765.171]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\nt\nRSS(df=0.612212, loc=2757.46, scale=2765.17)'}, xlabel='Values', ylabel='Frequency'>)
  • total_reps_users2 - the most fitting distribution is Pareto (RSS < 0.0005),
[distfit] >fit..
[distfit] >transform..
[distfit] >[pareto] [0.04 sec] [RSS: 4.52583e-08] [loc=-0.000 scale=8.000]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\npareto\nRSS(b=0.199546, loc=-0.000423249, scale=8.00042)'}, xlabel='Values', ylabel='Frequency'>)
  • reps_per_session_users2 - the most fitting distribution is Weibull (RSS = 0.000014),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.02 sec] [RSS: 1.35619e-05] [loc=215.545 scale=67.414]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=1.15417, loc=215.545, scale=67.4136)'}, xlabel='Values', ylabel='Frequency'>)
  • total_calories_users2 - the most fitting distribution is Pareto (RSS < 0.0005),
[distfit] >fit..
[distfit] >transform..
[distfit] >[pareto] [0.07 sec] [RSS: 5.80005e-07] [loc=-1.831 scale=2.699]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\npareto\nRSS(b=0.184706, loc=-1.83117, scale=2.6994)'}, xlabel='Values', ylabel='Frequency'>)
  • kcal_per_session_users2 - the most fitting distribution is gamma (RSS = 0.000013),
[distfit] >fit..
[distfit] >transform..
[distfit] >[gamma] [0.07 sec] [RSS: 1.51986e-05] [loc=-87.917 scale=5.709]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngamma\nRSS(a=27.6705, loc=-87.9166, scale=5.70947)'}, xlabel='Values', ylabel='Frequency'>)
  • BMI - the most fitting distribution is generalized extreme (RSS = 0.0029).
[distfit] >fit..
[distfit] >transform..
[distfit] >[genextreme] [0.09 sec] [RSS: 0.00294442] [loc=22.632 scale=2.979]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngenextreme\nRSS(c=0.0354817, loc=22.6323, scale=2.97856)'}, xlabel='Values', ylabel='Frequency'>)

The data don't follow normal distribution.

Categorical data¶

As a categorical data will be taken:

  • gender,
  • activity_level,
  • goal,
  • body_type,
  • body_fat,
  • newsletter_subscription,
  • notifications_setting,
  • training_days_setting,
  • language,
  • scientific_data_usage,
  • BMI_category.
Frequency Percent Cumulative Percent
Variable factors
Gender
female 1217.00 38.37% 38.37%
male 1955.00 61.63% 100.0%
Total 3172.00 100.0% -
Activity_level
active 1784.00 56.24% 56.24%
sedentary 1058.00 33.35% 89.6%
very active 330.00 10.4% 100.0%
Total 3172.00 100.0% -
Goal
antiaging 474.00 14.94% 14.94%
gain 1445.00 45.55% 60.5%
lose 1253.00 39.5% 100.0%
Total 3172.00 100.0% -
Language
en 177.00 5.58% 5.58%
es 2995.00 94.42% 100.0%
Total 3172.00 100.0% -
Body_type
mid 1501.00 47.32% 47.32%
strong 281.00 8.86% 56.18%
thin 1390.00 43.82% 100.0%
Total 3172.00 100.0% -
BMI_category
Normal 2053.00 64.72% 64.72%
Obesity 232.00 7.31% 72.04%
Overweight 816.00 25.73% 97.76%
Underweight 71.00 2.24% 100.0%
Total 3172.00 100.0% -
Newsletter_subscription
False 947.00 29.85% 29.85%
True 2225.00 70.15% 100.0%
Total 3172.00 100.0% -
Notifications_setting
False 65.00 2.05% 2.05%
True 3107.00 97.95% 100.0%
Total 3172.00 100.0% -
Training_days_setting
True 199.00 6.27% 6.27%
2.0 222.00 7.0% 13.27%
3.0 1326.00 41.8% 55.08%
4.0 672.00 21.19% 76.26%
5.0 566.00 17.84% 94.1%
6.0 100.00 3.15% 97.26%
7.0 87.00 2.74% 100.0%
Total 3172.00 100.0% -

Among the selected users, 38% of them are female (1217 users) and 62% are male (1995 users). Users that decided that their activity level is very active is 10% (330 users),active 56% (1784 users) and sedentary 33% (1058 users). It is seen that the biggest group of users define themselves as active. Most of the users decided that their goal is gaining (weight, muscles) - it is 46% (1445) of all users, smaller group is for losing weight - 40% (1253) and the smallest group have antiaging goal - 15% (474). Over 94% of users set their app language to Spanish (2995 out of 3172 users) and only 6% decided on english (177 users). Most of users defined their body type as mid - 47% (1501 users), then thin - 44% (1390 users) and strong is the smallest group - 9% (281 users). The biggest group of users has BMI in normal range (65%, 2052 users), but 26% have overweight (817 users), 7% obesity (231 users) and the smallest group is underweight - 2% (72 users). Over 70% of users agreed on newsletter subscription (2225 users) and 30% didn't agree on them (947 users). Almost 98% of users turned on notification settings (3107 users) and 65 users (2%) turned them off. Most of the users decided on having training 3 times a week - 42% (1326 users), then 4 times a week - 21% (672 users), 5 times a week - 18% (566 users), 2 times a week - 7% (222 users), once a week - 6% (199 users), 6 times a week - 3% (100 users) and the smallest group is for 7 times a week - 3% (87 users).

Total 20.0 25.0 15.0 30.0 35.0 10.0 40.0 45.0 50.0 17.0 12.0 18.0 22.0 16.0 13.0 23.0 14.0 21.0 19.0 24.0 28.0 26.0 27.0 6.0 8.0 32.0 16.5 29.0 11.0 17.5 12.6 7.0 8.5 9.0 33.0 31.0 9.9 28.4 10.5 12.5 14.3 17.1 23.2 14.5 22.1 14.6 21.5 15.1 20.5 19.7 19.2 16.9 18.9 6.6 18.1 18.6
Frequency 3172 837 629 507 466 242 162 111 47 26 13 13 11 10 10 9 8 6 6 5 4 4 3 3 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Percent 100.0% 26.39% 19.83% 15.98% 14.69% 7.63% 5.11% 3.5% 1.48% 0.82% 0.41% 0.41% 0.35% 0.32% 0.32% 0.28% 0.25% 0.19% 0.19% 0.16% 0.13% 0.13% 0.09% 0.09% 0.09% 0.06% 0.06% 0.06% 0.06% 0.06% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03%

By consideringbody_fat as a categorical variable, it can be seen that most of the users set their body fat level at 20% - 837 (26%) users, then at 25% of body fat - 629 (20%) users and at 15% of body fat - 507 (16%) users.

For Session_executions¶

The variables taken into analysis will be:

  • id_session_execution,
  • difficulty_feedback_session_execution,
  • enjoyment_feedback_session_execution,
  • updated_at_session_execution,
  • name_en_sessions,
  • total_time_session_execution,
  • total_reps_session_execution,
  • reps_per_min_session_execution,
  • calories_session_execution.

Data taken are only the first rows of every session_execution based on their ID. Users executed 49428 sessions.

Numerical data¶

Variables:

  • difficulty_feedback_session_execution,
  • enjoyment_feedback_session_execution,
  • total_time_session_execution,
  • total_reps_session_execution,
  • reps_per_min_session_execution,
  • calories_session_execution

will be taken into consideration as numerical variables. Later, difficulty_feedback_session_execution and enjoyment_feedback_session_execution will be taken as a categorical variables.

Summary statistics¶

Below there are summary statistics for numeric variables.

count mean std min 25% 50% 75% max var skewness kurtosis
difficulty_feedback_session_execution 49428.00 5.70 1.55 1.00 5.00 5.00 7.00 10.00 2.41 0.36 0.77
enjoyment_feedback_session_execution 49428.00 3.62 0.81 1.00 3.00 3.00 4.00 5.00 0.65 0.31 -0.42
total_time_session_execution 49428.00 1353.94 679.41 3.00 878.00 1337.00 1714.00 7839.00 461603.74 1.00 2.93
total_reps_session_execution 49428.00 257.26 161.98 1.00 150.00 242.00 316.00 2227.00 26238.61 1.52 5.46
reps_per_min_session_execution 49428.00 12.08 8.10 0.27 7.70 10.83 14.63 184.62 65.55 4.37 44.58
calories_session_execution 49428.00 83.03 50.78 0.08 49.21 75.56 105.02 548.57 2578.21 1.85 6.64

Difficulty feedback is on scale 1 to 10. Mean value of difficulty feedback for all executed sessions is 5.7 (SD 1.55), median is 5 (IQR 5 - 7). So difficulty is 'medium'. Enjoyment feedback is on scale 1 to 5. Average value of enjoyment is 3.6 (SD 0.8). Median is 3 (IQR 3 - 4), so the users, in average, enjoyed the workouts in 60%. Mean value of session execution total time is 1354 seconds (SD 679), so in average, time spend on executing session is 1354 seconds (about 23 minutes). Median value is 1337 seconds (IQR 878 - 1714). The maximum value of total time spent on session execution is 7839 seconds (about 131 minutes). In average, total number of reps in an executed session is 257 reps (SD 162). Median value is 242 reps in a session (IQR 150 - 316). Maximum number of reps executed in a session is 2227 reps. Average value of reps per minute in a session execution is 12 reps in a minute (SD 8), median value is 11 reps per minute (IQR 8 - 15). Maximum value is 185 reps in a minute. Mean value of calories burned in a session execution is 83 (SD 51), median value is 76 (IQR 49 - 105). Maximum value of burned calories in a session execution is 549 calories.

Distribution evaluation and density plots¶

The distribution of data will be checked for every variable. Goodness of fit will depend on RSS.

  • difficulty_feedback_session_execution - the most fitting distribution is Weibull (RSS = 5.26),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [1.11 sec] [RSS: 5.25924] [loc=5.000 scale=1.316]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=0.21801, loc=5, scale=1.31632)'}, xlabel='Values', ylabel='Frequency'>)
  • enjoyment_feedback_session_execution - the most fitting distribution is Weibull (RSS = 51.73),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.26 sec] [RSS: 51.7273] [loc=3.601 scale=0.804]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=1.96434, loc=3.60085, scale=0.803796)'}, xlabel='Values', ylabel='Frequency'>)
  • total_time_session_execution - the most fitting distribution is Weibull (RSS = 0.000000087),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.29 sec] [RSS: 8.68698e-08] [loc=1312.571 scale=542.506]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=1.1691, loc=1312.57, scale=542.506)'}, xlabel='Values', ylabel='Frequency'>)
  • total_reps_session_execution - the most fitting distribution is Weibull (RSS = 0.0000037),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [1.05 sec] [RSS: 3.69759e-06] [loc=240.000 scale=113.319]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=0.973716, loc=240, scale=113.319)'}, xlabel='Values', ylabel='Frequency'>)
  • reps_per_min_session_execution - the most fitting distribution is Weibull (RSS = 0.00015),
[distfit] >fit..
[distfit] >transform..
[distfit] >[dweibull] [0.53 sec] [RSS: 0.000151602] [loc=10.777 scale=4.880]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ndweibull\nRSS(c=0.97646, loc=10.7773, scale=4.87958)'}, xlabel='Values', ylabel='Frequency'>)
  • calories_session_execution - the most fitting distribution is gamma (RSS = 0.000011).
[distfit] >fit..
[distfit] >transform..
[distfit] >[gamma] [0.39 sec] [RSS: 1.12187e-05] [loc=-3.225 scale=27.021]
[distfit] >Compute confidence interval [parametric]
[distfit] >plot..
(<Figure size 900x400 with 1 Axes>,
 <AxesSubplot: title={'center': '\ngamma\nRSS(a=3.19118, loc=-3.22523, scale=27.021)'}, xlabel='Values', ylabel='Frequency'>)

The data don't follow normal distribution.

Categorical data¶

As a categorical variables:

  • difficulty_feedback_session_execution,
  • enjoyment_feedback_session_execution,
  • name_en_sessions

will be taken into consideration. Difficulty feedback is on scale 1 to 10 and enjoyment feedback is on scale 1 to 5.

Below there are frequency tables and frequency plots for the variables.

Frequency Percent Cumulative Percent
Variable factors
Enjoyment feedback
1.0 271.00 0.55% 0.55%
2.0 963.00 1.95% 2.5%
3.0 24424.00 49.41% 51.91%
4.0 15241.00 30.83% 82.74%
5.0 8529.00 17.26% 100.0%
Total 49428.00 100.0% -
Difficulty feedback
1.0 376.00 0.76% 0.76%
2.0 614.00 1.24% 2.0%
3.0 2035.00 4.12% 6.12%
4.0 2787.00 5.64% 11.76%
5.0 22455.00 45.43% 57.19%
6.0 7604.00 15.38% 72.57%
7.0 7164.00 14.49% 87.07%
8.0 3703.00 7.49% 94.56%
9.0 1759.00 3.56% 98.12%
10.0 931.00 1.88% 100.0%
Total 49428.00 100.0% -

When taking enjoyment feedback as a categorical variable, 49% (24424) of executed sessions have enjoyment feedback equal to 3. Almost 31% of session executions have enjoyment feedback equal to 4, 17% of executed sessions have enjoyment feedback equal to 5 (maximum one). Enjoyment feedback of session execution equal to 2 was given for 963 sessions (2% of all sessions executed). Only 0.5% (271) of all session executions had enjoyment feedback equal to 1.

When difficulty feedback is taken into consideration as a categorical variable, then over 45% of all session executions have difficulty given to 5, so it's medium. Only 0.8% (376) of difficulty of all session executions were graded at 1 and 1.9% (931) were graded at difficulty 10.

Total Session 2 Session 1 Session 3 Session 4 Session 5 Session 6 Session 7 Session 8 Session 9 Session 10 Sesion 1 Session 11 Session 12 Session 13 Session 14 Session 16 Session 17 Session 18 Session 15 Session 19 Regenerative Mitochondrial activation Test Revitalizing Session 21 Session 22 Session 20 Session 24 Sesion 23 Session 27 Session 26 Metabolic sandwich 1 Session 28 Session 29 Session 31 Session 32 Rewarding Metabolic sandwich 2 IRP Session 33 Session 34 Session 36 Session 25 Session 38 Session 37 Metabolic sandwich 3 Session 41 Session 39 Session 43 Session 42 Session 30 Fundamentals - Session 1 Session 44 Metabolic sandwich 4 Session 46 Session 48 Session 47 Session 35 Session 49 Fundamentals - Session 2 Fundamentals - Session 3 Session 40 Fundamentals - Session 5 Session 50 Fundamentals - Session 4 Session 45 Hypertrophy - Session 9 Hypertrophy - Session 10 Fundamentals - Session 7 Fundamentals - Session 6 Hypertrophy - Session 12 Hypertrophy - Session 11 Hypertrophy - Session 13 Hypertrophy - Session 14 Fundamentals - Session 8 Strength - Session 17 Hypertrophy - Session 15 Hypertrophy - Session 16 Strength - Session 19 Strength - Session 18 Strength - Session 20 Strength - Session 21 Strength - Session 23 Strength - Session 22 Muscular endurance - Session 25 Strength - Session 24 MuHu24.1 Muscular endurance - Session 26 Skill & Metabolic training - Session 29 Muscular endurance - Session 28 Muscular endurance - Session 27 Skill & Metabolic training - Session 30 Transitions & Strength - Session 33 Skill & Metabolic training - Session 31 Transitions & Global - Session 40 Transitions & Global - Session 37 Transitions & Strength - Session 35 Transitions & Global - Session 39 Transitions & Strength - Session 36 MuHu30.1 Transitions & Global - Session 38 MuHu 1.2 Transitions & Strength - Session 34 Skill & Metabolic training - Session 32 MuHu 3.2 MuHu 5.2 MuHu36.1 MuHu 4.2 MuHu42.1 Session 23 MuHu27.1 MuHu25.1 MuHu 7.2 MuHu 9.2 MuHu29.1 MuHu 11.2 MuHu 13.2 MuHu 10.2 MuHu35.1 MuHu28.1 MuHu31.1 MuHu33.1 MuHu 17.2 MuHu 15.2 Session MuHu 19.2 MuHu37.1 MuHu 16.2 Session 52 MuHu39.1 MuHu43.1 MuHu41.1 MuHu34.1 Session 54 MuHu40.1 MuHu 21.2 Session 51 Session 53 Session 55 MuHu45.1 Session 56 MuHu51.1 MuHu 22.2 MuHu49.1 Session 59 MuHu46.1 Session 57 Session 69 Session 66 Session 60 Session 68 Session 61 Session 58 MuHu53.1 Session 62 MuHu52.1 Session 65 Session 64 Session 67 MuHu31.2 MuHu29.2 MuHu1.3 MuHu49.2 MuHu41.2 MuHu46.2 MuHu55.1 Session 63 MuHu28.2 TTO MuHu40.2 MuHu5.3 MuHu43.2 MuHu45.2 MuHu4.3 MuHu39.2 MuHu27.2 MuHu35.2 MuHu34.2 MuHu33.2 MuHu3.3 MuHu64.1 MuHu59.2 MuHu63.1 MuHu53.2 MuHu55.2 MuHu57.1 MuHu58.1 MuHu25.2 MuHu59.1 MuHu52.2 MuHu61.1 MuHu65.1 MuHu67.1 MuHu65.2 MuHu51.2 MuHu37.2 MuHu58.2 MuHu61.2 MuHu57.2 MuHu69.1 MuHu64.2 CPH MuHu71.1 MuHu63.2 MuHu70.1 MuHu7.3 MuHu9.3 MuHu49.3 MuHu69.2 session 7 MuHu10.3 MuHu11.3 MuHu15.3 MuHu51.3 MuHu53.3 MuHu67.2 Active Rest 3 MuHu72.1 MuHu70.2 TTO & IRP MuHu13.3 MuHu55.3 MuHu71.2 MuHu27.3 MuHu25.3 SS & IT MuHu72.2 MuHu16.3 MuHu17.3 MuHu19.3 MuHu21.3 MuHu22.3 SS & TTO MuHu61.3 MuHu52.3 MuHu59.3 MuHu57.3 TBD MuHu58.3 MuHu65.3 IR & TT IRP & IR Mobility MuHu64.3 TBD & IR MuHu67.3 MuHu70.3 MuHu31.3 MuHu29.3 SS & TB MuHu69.3 MuHu63.3 TTO & TB CP MuHu28.3 MuHu71.3 Interval At Time ITP IRP & TB MuHu35.3 MuHu33.3 SS & IRP MuHu34.3 MuHu37.3
Frequency 49428 3805 3552 3299 2986 2924 1649 1522 1406 1354 1239 1151 897 877 765 727 673 629 605 546 540 523 517 484 444 429 415 390 387 365 359 359 353 341 323 320 307 301 280 279 277 270 261 260 252 252 246 242 237 233 230 230 230 226 224 214 206 205 202 183 178 173 168 149 146 145 145 136 132 131 123 121 116 113 109 103 103 102 101 100 90 89 89 87 83 81 79 76 76 72 71 70 69 67 65 63 61 61 60 60 59 59 59 58 56 52 50 49 49 42 41 38 38 38 37 34 34 33 33 33 31 31 31 30 30 30 29 29 29 28 26 26 25 23 23 22 22 21 20 19 19 19 17 17 17 17 17 16 16 16 16 16 16 15 15 15 15 15 14 13 13 13 12 12 12 12 12 12 12 11 11 11 11 11 11 11 11 11 11 11 10 10 10 10 10 10 10 10 10 10 10 10 9 9 9 9 9 8 8 8 7 7 7 7 7 7 6 5 5 5 5 5 5 5 5 5 5 5 5 4 4 4 4 3 3 3 3 3 3 3 3 3 3 3 3 3 3 2 2 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Percent 100.0% 7.7% 7.19% 6.67% 6.04% 5.92% 3.34% 3.08% 2.84% 2.74% 2.51% 2.33% 1.81% 1.77% 1.55% 1.47% 1.36% 1.27% 1.22% 1.1% 1.09% 1.06% 1.05% 0.98% 0.9% 0.87% 0.84% 0.79% 0.78% 0.74% 0.73% 0.73% 0.71% 0.69% 0.65% 0.65% 0.62% 0.61% 0.57% 0.56% 0.56% 0.55% 0.53% 0.53% 0.51% 0.51% 0.5% 0.49% 0.48% 0.47% 0.47% 0.47% 0.47% 0.46% 0.45% 0.43% 0.42% 0.41% 0.41% 0.37% 0.36% 0.35% 0.34% 0.3% 0.3% 0.29% 0.29% 0.28% 0.27% 0.27% 0.25% 0.24% 0.23% 0.23% 0.22% 0.21% 0.21% 0.21% 0.2% 0.2% 0.18% 0.18% 0.18% 0.18% 0.17% 0.16% 0.16% 0.15% 0.15% 0.15% 0.14% 0.14% 0.14% 0.14% 0.13% 0.13% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.12% 0.11% 0.11% 0.1% 0.1% 0.1% 0.08% 0.08% 0.08% 0.08% 0.08% 0.07% 0.07% 0.07% 0.07% 0.07% 0.07% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.06% 0.05% 0.05% 0.05% 0.05% 0.05% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.04% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.03% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.02% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.01% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0% 0.0%

Most of the sessions executed didn't have the same name. The biggest number of session executions that had the same name is 3805 sessions (7.7%) and had the name Session 2. Some of the sessions, like MuHu 37.3 or SS & IRP were executed only once.

Sessions executed by users in time (numbers and plots)¶

It is possible to plot number of sessions executed weekly by users. It is possible to check if user did achieve weekly goal of trainings. This approach may not be fully correct to identify how many days a week user did workout.

We can check that there is one user whose number of sessions executed is bigger than 300 and it is user 1718. Below there is a plot that shows how many sessions in a week (and in which week) have the user executed.

id_users YYYY/WW days_a_week_session_exe training_days_setting training_days_goal_achieved
0 108.00 2021/23 1 2 0
1 108.00 2021/43 1 2 0
2 108.00 2021/49 2 2 1
3 108.00 2022/04 3 2 1
4 108.00 2022/14 1 2 0
... ... ... ... ... ...
20318 18127.00 2022/21 1 5 0
20319 18147.00 2022/21 1 7 0
20320 18157.00 2022/21 1 5 0
20321 18165.00 2022/21 3 5 0
20322 18174.00 2022/21 1 1 1

20323 rows × 5 columns

<AxesSubplot: xlabel='YYYY/WW'>
YYYY/WW 2021/43 2021/44 2021/45 2021/46 2021/47 2021/48 2021/49 2021/50 2021/51 2021/52 2022/01 2022/02 2022/03 2022/04 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14 2022/15 2022/16 2022/17 2022/18 2022/19 2022/20 2022/21
id_session_execution 8 15 12 11 11 11 12 11 12 14 9 12 13 9 8 7 9 8 8 9 7 8 9 10 11 10 11 10 10 10 6

Below, there is also data about this user - this is very active male, that has a goal to gain muscles, and his body type is strong. He has 83 kg and is 184 cm tall. Body fat is on 15%. He agreed on newsletter and notifications, set the name of the app to Spanish and training days are 5 a week. This user did 311 sessions and spent 452170 seconds on them (7536 minutes, almost 126 hours).

id_users created_at_users updated_at_users gender date_of_birth height weight activity_level goal body_type body_fat newsletter_subscription notifications_setting training_days_setting language points scientific_data_usage best_weekly_streak_users BMI BMI_category total_sessions_users2 total_time_users2 total_reps_users2 reps_per_session_users2 total_calories_users2 kcal_per_session_users2
89868 1718.00 2021-10-25 11:02:12.043287 2022-09-11 05:44:44.460912 male 1981-03-07 184.00 83.00 very active gain strong 15.00 True True 5.00 es 1810142.00 False 44.00 24.52 Normal 311.00 452170.00 120390.00 387.11 31452.30 101.13

Below there is a plot and a table with number of days a week the user 1718 had done a workout and a red line that represent training days setting.

<matplotlib.legend.Legend at 0x7f34c45d34c0>
YYYY/WW 2021/43 2021/44 2021/45 2021/46 2021/47 2021/48 2021/49 2021/50 2021/51 2021/52 2022/01 2022/02 2022/03 2022/04 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14 2022/15 2022/16 2022/17 2022/18 2022/19 2022/20 2022/21
days_a_week_session_exe 3 7 7 7 7 7 7 7 7 7 7 7 7 7 6 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 4
training_days_setting 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

Now, for example user 4494. Below there is a plot of number of session executed in each week.

<AxesSubplot: xlabel='YYYY/WW'>
YYYY/WW 2021/43 2021/46 2021/47 2021/48 2021/49 2022/02 2022/03 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14
id_session_execution 1 3 2 2 1 4 3 3 3 4 3 3 4 5 3 3 3

This user is active male with goal to gain muscles and thin body_type. Body fat is on 20% level. He has 62 kg and is 168 cm tall. His BMI is on normal level. His app was set on Spanish language. He set his training days at 3 days a week. He executed 50 sessions and total time of all sessions is 74831 seconds (over 1247 minutes, almost 21 hours).

id_users created_at_users updated_at_users gender date_of_birth height weight activity_level goal body_type body_fat newsletter_subscription notifications_setting training_days_setting language points scientific_data_usage best_weekly_streak_users BMI BMI_category total_sessions_users2 total_time_users2 total_reps_users2 reps_per_session_users2 total_calories_users2 kcal_per_session_users2
104007 4494.00 2021-10-28 06:06:18.825845 2022-04-07 09:43:19.433396 male 1978-11-11 168.00 62.00 active gain thin 20.00 True True 3.00 es 91440.00 False 9.00 21.97 Normal 50.00 74831.00 9610.00 192.20 3218.41 64.37

Below there is a plot with number of days when the workout was done and training days setting value.

<matplotlib.legend.Legend at 0x7f34c504b610>
YYYY/WW 2021/43 2021/46 2021/47 2021/48 2021/49 2022/02 2022/03 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14
days_a_week_session_exe 1 3 2 2 1 4 3 3 3 4 3 3 4 4 3 3 3
training_days_setting 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3

The other user is a user that is said to have best weekly streak equal to 49. It is not true, but we will see that user. It is user 1285. Below there is a plot and table with number of sessions executed in each week.

<AxesSubplot: xlabel='YYYY/WW'>
YYYY/WW 2021/44 2021/45 2021/46 2021/47 2021/48 2021/49 2021/50 2021/51 2021/52 2022/01 2022/02 2022/03 2022/04 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14 2022/15 2022/16 2022/17 2022/18 2022/19 2022/20 2022/21
id_session_execution 5 5 5 6 5 6 4 11 4 7 5 6 4 3 6 3 3 6 3 9 4 2 2 5 1 2 2 4 3 1

The user is active male with goal of losing weight and mid body type. He is 177 cm tall and his weight is equal to 84 kg. According to BMI number, he is overweight. His body fat has 30% and his app language is Spanish. He did 132 session in total and spent 147315 seconds (2455 minutes, almost 41 hours) doing them.

id_users created_at_users updated_at_users gender date_of_birth height weight activity_level goal body_type body_fat newsletter_subscription notifications_setting training_days_setting language points scientific_data_usage best_weekly_streak_users BMI BMI_category total_sessions_users2 total_time_users2 total_reps_users2 reps_per_session_users2 total_calories_users2 kcal_per_session_users2
116793 1285.00 2021-10-25 11:00:13.463122 2022-09-09 16:41:32.933491 male 1979-12-08 177.00 84.00 active lose mid 30.00 True True 5.00 es 1006620.00 True 49.00 26.81 Overweight 132.00 147314.50 34942.00 264.71 11109.87 84.17

Below there is a plot with number of days when the workout was done and training days setting value.

<matplotlib.legend.Legend at 0x7f34bb3c1f00>
YYYY/WW 2021/44 2021/45 2021/46 2021/47 2021/48 2021/49 2021/50 2021/51 2021/52 2022/01 2022/02 2022/03 2022/04 2022/05 2022/06 2022/07 2022/08 2022/09 2022/10 2022/11 2022/12 2022/13 2022/14 2022/15 2022/16 2022/17 2022/18 2022/19 2022/20 2022/21
days_a_week_session_exe 2 4 4 4 4 4 4 7 4 5 4 3 3 3 3 3 3 4 3 6 3 2 2 3 1 2 2 4 3 1
training_days_setting 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5

The user achieved only 3 weeks when comparing number of days a week the user did a workout and training days setting, so best_weekly_streak variable doesn't give correct numbers.